home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / xlib / xlib06p2 / xlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-05  |  5.9 KB  |  153 lines

  1. /*----------------------------------------------------------------------
  2. ;
  3. ; XLIB - header file
  4. ;
  5. ;
  6. ;
  7. ; ****** XLIB - Mode X graphics library                ****************
  8. ; ******                                               ****************
  9. ; ****** Written By Themie Gouthas                     ****************
  10. ;
  11. ; egg@dstos3.dsto.gov.au
  12. ; teg@bart.dsto.gov.au
  13. ;
  14. ; Header file contributed by Darren Lyon (darren@nicky.DIALix.oz.au)
  15. ;
  16. ;
  17. ;  Terminology & notes:
  18. ;         VRAM ==   Video RAM
  19. ;         SRAM ==   System RAM
  20. ;         X coordinates are in pixels unless explicitly stated
  21. ;
  22. ;----------------------------------------------------------------------*/
  23.  
  24. #ifndef _XLIB_H_
  25. #define _XLIB_H_
  26.  
  27. #include "xdefs.h"
  28.  
  29. #define X_MODE_320x200  0
  30. #define X_MODE_320x240  1
  31. #define X_MODE_360x200  2
  32. #define X_MODE_360x240  3
  33. #define X_MODE_376x282  4
  34. #define X_MODE_320x400  5
  35. #define X_MODE_320x480  6
  36. #define X_MODE_360x400  7
  37. #define X_MODE_360x480  8
  38. #define X_MODE_360x360  9
  39. #define X_MODE_376x308  10
  40. #define X_MODE_376x564  11
  41. #define X_MODE_256x400  12
  42. #define X_MODE_256x480  13
  43.  
  44.  
  45. #define BACKWARD 0
  46. #define FORWARD  1
  47.  
  48. #define X_MODE_INVALID  -1
  49. #define ERROR            1
  50. #define OK               0
  51.  
  52. /* FUNCTIONS =========================================================== */
  53.  
  54.  
  55.  int x_set_mode(
  56.     int mode,                /* Initialize x mode           */
  57.     int WidthInPixels);
  58.  
  59.  void x_select_default_plane( /*Enables Read/Write access to a    */
  60.     BYTE plane);   /* a specified plane                */
  61.  
  62.  void x_set_splitscreen(            /* set the split screen start  */
  63.     xScreenCoord_t line);         /*scan line (initialize)       */
  64.  
  65.  void x_set_start_addr(
  66.     xScreenCoord_t X,             /* Set the screen start        */
  67.     xScreenCoord_t Y);            /* address in video ram        */
  68.  
  69.  void x_hide_splitscreen(void); /* Disable the split screen (Split */
  70.         /* Screen RAM remains reserved)    */
  71.  
  72.  void x_show_splitscreen(void); /* Enable the split screen (given it */
  73.         /* was previously "hidden")          */
  74.  
  75.  
  76.  void x_adjust_splitscreen(   /* Adjust the start scan line of the */
  77.     xScreenCoord_t line);   /* split screen                      */
  78.  
  79.  
  80.  int x_set_doublebuffer(         /* Enable double buffering with a    */
  81.     int PageHeight); /* specified page height             */
  82.  
  83.  int x_set_tripplebuffer(         /* Enable tripple buffering with a    */
  84.         int PageHeight); /* specified page height             */
  85.  
  86.  
  87.  void x_page_flip(        /* Swap visible page (only when double   */
  88.     xScreenCoord_t X,   /* buffering is active) & sets virt start*/
  89.     xScreenCoord_t Y);
  90.  
  91.  void x_set_cliprect(      /* Define the clipping rectangle */
  92.     xScreenCoord_t left, /* NOTE: left and right are in bytes */
  93.     xScreenCoord_t top,
  94.     xScreenCoord_t righ,
  95.     xScreenCoord_t bottom);
  96.  
  97.  void x_text_mode(void);   /* return to text mode */
  98.  void x_wait_vsync(void);  /* wait for vsync */
  99.  
  100.  
  101. /* VARIABLES =========================================================== */
  102.  
  103. extern BYTE InGraphics;             /* non zero if in X graphics mode      */
  104. extern int CurrXMode;              /* contains current X graphics mode id */
  105. extern int ScrnPhysicalByteWidth;  /* Physical screen width in bytes      */
  106. extern int ScrnPhysicalPixelWidth; /* Physical screen width in pixels     */
  107. extern int ScrnPhysicalHeight;     /* Physical screen height in pixels    */
  108. extern int ErrorValue;             /* Error return value                  */
  109. extern xPageHandle_t SplitScrnOffs;          /* Offset in VRAM  of split screen     */
  110. extern xScreenCoord_t SplitScrnScanLine;      /* Scan line split screen starts at    */
  111.             /* initially. Resizing the split scrn  */
  112.             /* using the other functions does not  */
  113.             /* change this value                   */
  114. extern int SplitScrnVisibleHeight; /* Height of the visible portion of the*/
  115.             /* split screen.                       */
  116. extern xPageHandle_t Page0_Offs;             /* Offset in VRAM of main virt. screen */
  117. extern xPageHandle_t Page1_Offs;             /* Offset in VRAM of 2nd virt. screen  */
  118. extern xPageHandle_t Page2_Offs;             /* Offset in VRAM of 3rd virt. screen  */
  119. extern int ScrnLogicalByteWidth;   /* Virtual screen width in bytes       */
  120. extern int ScrnLogicalPixelWidth;  /* Virtual screen width in pixels      */
  121. extern int ScrnLogicalHeight;      /* Virtual screen height in pixels     */
  122. extern xScreenCoord_t MaxScrollX;             /* Max X position of physical screen   */
  123.             /*  within virtual screen              */
  124. extern xScreenCoord_t MaxScrollY;             /* Max Y position of physical screen   */
  125.             /*  within virtual screen              */
  126. extern int DoubleBufferActive;     /* Indicates whether double buffering  */
  127.                   /* is active                           */
  128. extern int TrippleBufferActive;    /* Indicates whether tripple           */
  129.             /* buffering is active                 */
  130. extern int VisiblePageIdx;         /* Index number of visible page 0 or 1 */
  131. extern xPageHandle_t HiddenPageOffs;         /* Offset of Hidden Pg | only valid    */
  132. extern xPageHandle_t VisiblePageOffs;        /* Offset of Visible Pg| for D.B. mode */
  133. extern xPageHandle_t WaitingPageOffs;        /* Offset of Waiting Pg| for T.B. mode */
  134. extern xPageHandle_t NonVisual_Offs;         /* Offset of first non-visible VRAM    */
  135.  
  136. extern int StartAddressFlag;
  137.  
  138. extern xScreenCoord_t TopClip;                /* Clipping rectangle                  */
  139. extern xScreenCoord_t BottomClip;
  140. extern xScreenCoord_t LeftClip;
  141. extern xScreenCoord_t RightClip;
  142.  
  143. extern xScreenCoord_t PhysicalStartPixelX;    /* Coordinates of physical (visible) */
  144. extern int PhysicalStartByteX;     /* screen relative to the virtual    */
  145. extern xScreenCoord_t PhysicalStartY;         /* screen's U.L. corner              */
  146.  
  147. extern char* VsyncPaletteBuffer;
  148.  
  149.  
  150. #endif
  151.  
  152.  
  153.